home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_a
/
bounce.act
< prev
next >
Wrap
Text File
|
1995-04-22
|
3KB
|
184 lines
MODULE
; BOUNCE from ANALOG magazine
; Issue #15
; in GTIA Mode 11
BYTE key=764,x,y,console=53279,attract=77
CARD ctr
INT A,B
PROC wallchex()
IF x>78 THEN x=78 FI
IF y>190 THEN y=190 FI
IF x<1 THEN x=1 FI
IF y<1 THEN y=1 FI
RETURN
PROC menu()
PrintE("BOUNCE from Analog Issue #15")
PrintE(" in GTIA mode 11")
PrintF("%E* Use stick to draw walls,%E")
PrintF("* Hold trigger to erase,%E")
PrintF("* Hit ESC to clear screen,%E")
PrintE("* Hit SPACE to bounce.")
PrintE("* ARROWS control ball speed")
Print("Press any key to continue.")
key=255
While key=255 DO OD
key=255
RETURN
PROC drawscreen()
BYTE curs=752
Graphics (0)
curs=1
Menu()
Graphics(11)
curs=1
SetColor(4,0,4) ;SetColor(4,0,0)
Color=15
Plot(0,0)
DrawTo(79,0)
DrawTo(79,191)
Drawto(0,191)
DrawTo(0,0)
RETURN
PROC flash()
color=9
Plot(x,y)
FOR ctr=0 to 300 DO OD
color=0
Plot(x,y)
FOR ctr=0 to 300 DO OD
RETURN
PROC bounce()
BYTE fate=53770,L=[0],PA,PB,G,
kolor=[1],time=[32]
color=9
A=1
B=1
Plot(x,y)
DO
IF key=33 THEN key=255 RETURN FI
WHILE Locate(x+A,y+B)<15
DO
color=kolor
Plot(x,y)
x==+A
y==+B
wallchex()
color=9
Plot(x,y)
L==+1
FOR ctr=0 to 5*time DO OD
OD
IF key=7 THEN
key=255
time==-32
FI
Sound(0,L*4+20,10,8)
PA=Locate(x+A,y)
PB=Locate(x,y+B)
FOR ctr=0 to 100 DO OD
SndRst()
L=0
IF PA>2 AND PB>2 THEN
A=-A
B=-B
ELSEIF PA>2 AND PB<3 THEN
A=-A
color=2
Plot(x,y)
y=y+B
color=9
Plot(x,y)
ELSEIF PB>2 AND PA<3 THEN
B=-B
color=2
Plot(x,y)
x=x+A
color=9
Plot (x,y)
ELSEIF fate>127 THEN
B=-B
ELSE A=-A
FI
kolor==+1
IF kolor>14 THEN
kolor=1
FI
attract=0
OD
RETURN
PROC draw()
BYTE qq
drawscreen()
x=40
y=95
DO
IF key=28 THEN
key=255
drawscreen()
ELSEIF key=33 THEN
key=255
bounce()
FI
IF Stick(0)=15 THEN
flash()
ELSEIF Stick(0)=7 THEN
x=x+1
ELSEIF Stick(0)=6 THEN
x=x+1
y=y-1
ELSEIF Stick(0)=14 THEN
y=y-1
ELSEIF Stick(0)=5 THEN
x=x+1
y=y+1
ELSEIF Stick(0)=11 THEN
x=x-1
ELSEIF Stick(0)=10 THEN
x=x-1
y=y-1
ELSEIF Stick(0)=13 THEN
y=y+1
ELSEIF Stick(0)=9 THEN
x=x-1
y=y+1
FI
wallchex()
IF Strig(0)=0 THEN
color=0
flash()
ELSE
color=15
FI
Plot(x,y)
IF Stick(0)<>15 THEN
qq=Strig(0)
Sound(0,(200-x-y)*qq,8+2*qq,4)
FOR ctr=0 to 1000 DO OD
SndRst()
FI
OD
RETURN